package com.itcast.peft.entity.report;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonPropertyDescription;

import lombok.Data;

/**
 * 体检报告
 * @author itheima
 */
@Data
public class HealthReportVo {

    /**
     * 体检日期
     */
    @JsonPropertyDescription("体检日期，格式为YYYY-MM-DD")
    private String totalCheckDate;
    /**
     * 健康评估
     */
    private HealthAssessmentVo healthAssessment;
    /**
     * 风险分布
     */
    private RiskDistributionVo riskDistribution;
    /**
     * 异常数据列表
     */
    private List<AbnormalDataVo> abnormalData;

    /**
     * 健康系统分值
     */
    private SystemScore systemScore;

    /**
     * 综合总结
     */
    @JsonPropertyDescription("综合总结")
    private String summarize;
    
    /**
     * 返回自身实例相对于参照实例的评分
     * @param ref
     * @return
     */
    public int accuracyScore(HealthReportVo ref) {
        int result = 0;
        // 日期提取正确，记1分
        if(this.totalCheckDate.equalsIgnoreCase(ref.getTotalCheckDate())) {
            result += 1;
        }
        // 评级分0~2
        result += this.healthAssessment.accuracyScore(ref.healthAssessment);
        // 风险分布分数0~1
        result += this.riskDistribution.accuracyScore(ref.riskDistribution);
        // 健康系统分数0~1
        result += this.systemScore.accuracyScore(ref.systemScore);
        return result;
    }
}
